package com.hifar.test.example;

import com.hifar.utils.ExcelImportUtils;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * Excel导入使用示例
 * 演示如何使用增强的日期格式支持
 * 
 * @author system
 * @date 2025-01-XX
 */
public class ExcelImportExample {

    /**
     * 导入Excel示例
     * 
     * @param file Excel文件
     * @return 导入结果
     */
    public List<DateFormatExampleVO> importExcelExample(MultipartFile file) {
        try {
            // 使用增强的ExcelImportUtils导入数据
            List<DateFormatExampleVO> dataList = ExcelImportUtils.importExcel(
                file.getInputStream(), 
                DateFormatExampleVO.class
            );
            
            return dataList;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 使用说明：
     * 
     * 1. 基本用法：
     *    @Excel(name = "日期", format = "yyyy-MM-dd")
     *    private Date date;
     * 
     * 2. 多种格式支持：
     *    @Excel(name = "日期", format = "yyyy-MM-dd,yyyy/MM/dd,yyyy.MM.dd")
     *    private Date date;
     * 
     * 3. 智能解析：
     *    @Excel(name = "日期", smartDateParse = true)
     *    private Date date;
     * 
     * 4. 自定义格式优先级：
     *    @Excel(name = "日期", smartDateParse = true, 
     *           dateFormats = {"yyyy-MM-dd", "yyyy/MM/dd", "MM/dd/yyyy"})
     *    private Date date;
     * 
     * 5. 必填字段：
     *    @Excel(name = "日期", format = "yyyy-MM-dd", required = true)
     *    private Date date;
     * 
     * 6. 默认值：
     *    @Excel(name = "日期", format = "yyyy-MM-dd", defaultValue = "2024-01-01")
     *    private Date date;
     * 
     * 支持的日期格式：
     * - yyyy-MM-dd (2024-01-15)
     * - yyyy/MM/dd (2024/01/15)
     * - yyyy.MM.dd (2024.01.15)
     * - yyyy年MM月dd日 (2024年01月15日)
     * - MM/dd/yyyy (01/15/2024)
     * - dd/MM/yyyy (15/01/2024)
     * - yyyy-M-d (2024-1-15)
     * - yyyy/M/d (2024/1/15)
     * - yyyy.M.d (2024.1.15)
     * - yyyy年M月d日 (2024年1月15日)
     * - M/d/yyyy (1/15/2024)
     * - d/M/yyyy (15/1/2024)
     * - d-M-yyyy (15-1-2024)
     * - yyyyMMdd (20240115)
     * - MMdd (0115)
     * - yyyy-MM-dd HH:mm:ss (2024-01-15 14:30:00)
     * - yyyy/MM/dd HH:mm:ss (2024/01/15 14:30:00)
     * - yyyy.MM.dd HH:mm:ss (2024.01.15 14:30:00)
     * - yyyy年MM月dd日 HH:mm:ss (2024年01月15日 14:30:00)
     * - HH:mm:ss (14:30:00)
     * - HH:mm (14:30)
     */
}
